import { getEmplyeeBaseInfo, getUserBaseInfo, login } from '@/api/user'
import { getToken, removeToken, setToken } from '@/utils/auth'
// import { Message } from 'element-ui'

export default {
  namespaced: true,
  state: {
    token: getToken(),
    userInfo: {}
  },
  mutations: {
    setToken(state, token) {
      state.token = token
      setToken(token)
    },
    removeToken(state) {
      state.token = null
      removeToken()
    },
    setUserInfo(state, userInfo) {
      state.userInfo = userInfo
    },
    removeUserInfo(state) {
      state.userInfo = {}
    }
  },
  actions: {
    async login(context, data) {
      // try {
      // // :{},对象,层层解构,获取对象里面东西
      // // : token ,变量名,改名称,吧获取之后改个变量名
      //   const { data: { success, data: token, message }} = await login(data)
      //   // 判断是否成功
      //   if (success) {
      //     context.commit('setToken', token)
      //   } else {
      //   // 在js当中没有办法通过this.$xxx来获取组件的东西
      //   // 提示错误
      //     Message.error(message)
      //   }
      // } catch (error) {
      //   // 状态处理码不为200的错误
      //   Message.error('服务器出错稍后重试')
      // }
      // console.log(res)
      // const res = await login(data)
      // console.log(res)
      const token = await login(data)
      context.commit('setToken', token)
    },
    logout(context) {
      context.commit('removeToken')
      context.commit('removeUserInfo')
    },
    async getUserInfo(context) {
      const u = await getUserBaseInfo()
      const e = await getEmplyeeBaseInfo(u.userId)
      // context.commit('setUserInfo', { ...u, ...e })
      const o = { ...u, ...e }
      // o.staffPhoto = 'http://q6cu3t6jv.bkt.clouddn.com/1063705989926227968?t=1582797590950'
      o.staffPhoto = null
      context.commit('setUserInfo', o)
    }
  }
}
